#ifndef __XGU_FUNCTOR02_H__
#define __XGU_FUNCTOR02_H__

namespace xgu
{
	// -----------------------------------------------------------
	// 2 Arguments
	template <typename TRet, typename TArg0, typename TArg1>
	class Functor<TRet, TArg0, TArg1>
	{
	public:
		virtual ~Functor() {};
		virtual TRet operator() (TArg0, TArg1) = 0;
		virtual bool operator== (const Functor<TRet, TArg0, TArg1>& lhs) const		{ return false; }
		virtual Functor<TRet, TArg0, TArg1>* Clone() const = 0;
	};
}

#endif